﻿using System;

namespace DG.Common.EF.Logging
{
    public interface ILogKey<TLogId, TLogCampoId, TLogKeyId, TUsuarioID, TLogTipoId>
        where TLogId : struct  , IComparable<TLogId>
        where TLogCampoId : struct  , IComparable<TLogCampoId>
        where TLogKeyId : struct  , IComparable<TLogKeyId>
        where TUsuarioID : struct  , IComparable<TUsuarioID>
        where TLogTipoId : struct  , IComparable
    {
        // Primitive properties

        TLogKeyId LogKeyId { get; set; }
        TLogId LogId { get; set; }
        string Campo { get; set; }
        string Valor { get; set; }

        // Navigation properties

        ILog<TLogId, TLogCampoId, TLogKeyId, TUsuarioID, TLogTipoId> Log { get; set; }
    }
}